home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Netware Super Library
/
Netware Super Library.iso
/
inet_tcp
/
fxuuci
/
fxuuci.doc
< prev
next >
Wrap
Text File
|
1994-09-30
|
50KB
|
1,200 lines
FX UUCICO is Copyright (c) 1993, 1994 by Jorge Cwik. All rights reserved.
<jorge@satlink.net>
Version 1.0
TABLE OF CONTENTS
I. INTRODUCTION
II. INSTALLATION
Updating from previous FX releases
Installing from scratch
Replacing Waffle's Uucico
III. WAFFLE ISSUES
IV. RUNNING FX UUCICO
Dial in mode
Answer mode
Aborting the connection
V. FEATURES
Internal 'COMM' driver
FOSSIL interface
File restart
Execution requests
Grades
File size negotiation
Status bar
Logging
VI. PROTOCOLS
Protocol 'f'
Protocol 'y'
Protocol 'g'
Protocol 'G'
Protocol 'v'
VII. CONFIGURATION
Command line parameters
STATIC configuration file
'systems' file
'dialers' file
'scripts' file
scripts syntax
'permits' file
Time field format
(see also the file FXCONFIG.REF)
VIII. ASSISTANCE
IX. LEGAL
In the technical guide:
I. NETWORKING
II. MULTITASKING
III. 16550A FIFO UARTS
IV. TELEBIT modems
V. EXIT LEVELS
VI. STATUS files
VII. SECURITY
VIII. LIMITS AND MEMORY USAGE
IX. CUSTOM INTERFACES WITH FX UUCICO
I. INTRODUCTION
FX UUCICO is a drop-in replacement for Waffle's UUCICO. It's
fully compatible with Waffle 1.65, but adds a lot of new features:
o Up to 115200 bps, support for 16550A and custom serial ports.
o Eliminates most needs for FOSSIL, but it is still supported.
o File restart (crash recovery).
o Fully networkable, share multiple concurrent instances.
o File size negotiation and free space management.
o Execution requests.
o Status bar, shows progression of file transmissions.
o A very robust and efficient protocol 'g' implementation.
o Smart protocol 'g', with variable packets up to 4096 bytes.
o A new, extremely fast protocol 'y' for high-speed modems.
o Protocol 'f' for X.25 or other 7-bits lines.
o Protocol 'G' for SVR4 systems, and protocol 'v'
o Full support for incoming and outgoing grades.
o Support for comprehensive statistics.
o Improved security.
o Many new configurations options, and permits variables.
o Simpler configuration
o Interface to Intelligent Digiboards and non-standard Fossil drivers.
In all UUCP packages UUCICO is the program who manages the external
communications and file transfers. It's similar to Terminal Programs
(like Telix), except that it performs completely automatically.
Because modems (even the newest) are very slow in computers terms, and
because long distance connections are very expensive, UUCICO performance
is critical.
II. INSTALLATION.
--- Updating from previous FX releases ---
If you are updating from FX 0.4 you have very little to do but replace
the executable with the new one (backup the old one, first). Read the
WHATSNEW files and browse the configuration reference for the new options.
Notes:
See the configuration chapter. FX supports a new configuration model,
much simple than previous versions.
--- Installing from scratch ---
If you are installing Uucico for the first time you need to create the
necessary configuration files. Those that interface FX with a third
party package may have special instructions provided with that package.
The minimal installation requires placing FXUUCP.CFG along with the
executable in a single directory, the easiest way is to copy the samples
and make the appropriate modifications.
--- Replacing Waffle's Uucico ---
1) Copy your current UUCICO.EXE to UUCICO.OLD. This is to make sure that
you don't overwrite your original copy. We strongly urge you to take the
time to make a copy!
2) Copy the FX UUCICO.EXE into your waffle\bin directory.
Because it's designed as a replacement, FX UUCICO will perform perfectly
well without any changes to your WAFFLE environment.
You may want to make the first tests without changing any parameters.
FX UUCICO should work right out of the box. Deferring the fine-tuning
settings, will help you in finding any particular problem.
The only recommended changes (not mandatory) are these:
o Add "fx.gpktsize: 1024" to your configuration file, keep windows setting
at seven. (NOTE: _only_ if the system you are connecting supports this
size)
o Don't use a FOSSIL driver, unless you really need it.
o If you have a high-speed modem (over 2400), configure it to use hardware
flow control (CTS/RTS).
o If you have an error-correction modem you may want to use the new 'y'
protocol (change your 'systems' entries in the UUCP directory). Currently
the 'y' protocol is supported by FX only, but is in the process of being
added to other UUCP software.
o If you are sharing multiple copies, use "fx.share: true".
Examples:
In your STATIC file...
driver: fossil
uu.driver: native
uu.windows: 7
fx.gpktsize: 1024
Keep your previous configuration. If the changes are not working restore
your old setting and enable each option in turn. Particularly, large
packet size may not work when connecting to old uucp implementations.
III. WAFFLE ISSUES
FX UUCICO is fully compatible with WAFFLE 1.65, we tried very hard to make
it as transparent as possible. Most messages and logs are exactly the same,
although 'debugging' messages may differ.
There is a potential incompatibility in the waffle/admin/net file. This file
logs all connections and reports transmitted packets. Unfortunately there
is no indication of the amount in bytes or the packet size. This presents a
problem when different packet sizes are used and with protocols that do not
use pkts at all.
We changed the line format of this file to make it more descriptive. Utility
programs that depend on the old/waffle format will probably not work. One of
them is NETSUM, there are replacement programs available from our server.
A second incompatibility may arise in direct uucp transfers (with the
uucp.exe program). The enhanced security features of FX, may deny transfers
that Waffle's Uucico considered valid. They represented a serious security
hole and we are confident that you agree with our decision. See the permits
chapter and 'fx.trusted' for more info.
We are very grateful to Tom Dell, author of Waffle, for the open architecture
and the vast documentation of Waffle, without which would be impossible to
achieve the compatibility provided by FX UUCICO. Mr. Dell can be contacted
at dell@vox.darkside.com
All references to WAFFLE are for version 1.65.
WAFFLE is the Copyrighted property of Darkside Int'l.
IV. RUNNING FX UUCICO
Uucico is usually run from inside a batch file or directly from the command
prompt. There are two different modes of operation, dial-out or master mode,
and dial-in or slave mode.
The dial-out mode is for placing a call, usually known as polling. This is
the default mode and only requires you to specify the sites you want to call
with the -s parameter. The -s parameter has three different usage conditions:
-s all polls all known hosts
-s any polls hosts with queued jobs
-s host[,hostlist] polls specified host[s]
For every outgoing call, Uucico will run two scripts, the dialer and the
login scripts as specified in the 'systems' file. The dialer script usually
performs modem initialization and dialing. The login one, will automatically
do the necessary procedure for accessing your remote host uucp services. The
syntax of the scripts are documented in its own chapter.
Dial-in mode receives incoming calls. The -r0 parameter signals Uucico to
enter slave mode. Obviously the -r0 and -s parameters are mutually exclusive.
The slave mode requires the connection to be previously established, FX will
not currently pick up the phone or prompt for login by itself. This task must
be performed by waffle.exe or any other frontdoor.
In both modes optional parameters may be used. See the configuration chapter.
--- Aborting the Connection ---
You can interrupt program execution at any time by pressing control^break.
Uucico will then close the connection in a clean and orderly fashion. It
may take a couple of seconds until the exit procedure is performed.
If you press control^break several times, the interrupt module assumes
that the software might be locked and aborts immediately. Use this only
when you suspect a "hang-up" situation, because the only task performed
is to put the modem on-hook. Logs are not updated and internal buffers
are not flushed.
V. FEATURES.
--- Internal 'COMM' driver ---
The RS-232 driver has been enhanced to avoid the need of FOSSIL in most cases.
It's supports up to 115200 bps, hardware flow control, custom I/O ports addr-
esses and IRQs, and automatic detection of 16550A 'fifo' chips.
FX fully supports V.FC and V.34 modems at 28,8 Kbps.
FIFO operation is controlled by the parameter -z, use -z0 to disable auto
detection and FIFO mode. For maximum reliability in multitasking systems use
low trigger values.
To change the default settings of your serial port, append the new I/O address
and IRQ level to the port number. You may specify one or both parameters, the
missing one will keep the default value.
The syntax is port,address,irq. The address must be in hex.
Examples:
1,2F0,5
3,,7
COM2,2E0
4
You may use this syntax in any place that FX reads port devices. Currently
they are:
1) 'device' in static
2) The port field in the dialer
3) the -d runtime parameter.
Note that when both are set, the port number is actually disregarded.
The PC has a de facto standard on the hardware settings of COM1-COM4. Most
internal modems and serial cards come configured for those default values.
Use ONLY if you know what you are doing, unexpected behavior may result
trying to access the wrong hardware. High IRQs (8-15) are supported for
16-bit (or 32-bit) cards.
--- FOSSIL interface ---
When using a FOSSIL driver you MUST set the receiving buffer size larger than
the packet size (/R parameter in the BNU version) or enable 'fx.dblBuffer'.
The default of 1024 bytes is not enough for the 'y' protocol. Note that using
a FOSSIL driver may usually slow your performance. Most *do not* support bps
over 38400. For those that they do, you must lock the speed from the FOSSIL
command line. You can still use it (and we recommend you do) for WAFFLE in-
coming calls (Awaiting Call).
It's possible that some systems may experiment an erratic behavior with the
internal driver. Some old RS-232 boards, and some internal modems do not have
a full compatible UART. In those cases a FOSSIL driver (which may have been
tested with these boards) may give better results.
Some non-standard FOSSILs don't perform correct buffering. This is usually
the case, in drivers for ISDN and smart multiport boards. If you receive a
message reporting that the driver buffers are too small, enable the
'fx.dblBuffer' option.
--- DIGIboard interface ---
FX Uucico can directly interface with the Digiboard Universal Driver. The
digiboard driver is selected with the options 'driver' or 'uu.driver':
driver : DIGI
or
uu.driver : DIGI
The port number is specified as with the other drivers. With the 'device'
option or the '-d' run time parameter. Note that the port number corresponds
to the DOS names, not the digi channels (DOS names start with one, but digi
channels start with zero).
device: 5
The above line select digi channel _four_, which would normally be COM5. If
this sounds confusing, remember that this the same number you probably use
with other communication software.
The digi universal driver must be loaded. No other software is needed. You
cannot set the I/O port or the IRQ number from inside FX, the DIGI setup
software should be used for this purpose. FX doesn't need any special para-
meters to be set by the DIGI driver. Specifically, DOS/EBIOS support doesn't
need to be present (however note, other applications may need it). The line
parameters are internally set by FX (bps, mode, flow control, etc).
You can't currently specify different drivers for different ports (mixing
digiboards with standard serial ports). You would need to use two different
configuration files in such cases, the 'include' feature could be helpful
for multiple configs.
--- File restart ---
FX UUCICO supports file transfer restart, compatible with Unix SVR4 and TAYLOR
UUCP implementations. This is similar to the crash recovery feature in ZMODEM.
You can disable file restart with the new parameter -a.
You may need to temporarily disable the crash recovery option when sending
a file whose name matches an existing file. If UUCP is used to transfer a
file, and the same filename is found in the destination directory, UUCICO
will interpret this as a 'recovery' situation, and APPEND to the existing
file.
--- 'E'xecution request ---
FX supports Taylor Uucp 'E'xecution requests. These commands don't need
the transmission of 'X.*' files, resulting in a single file transfer per
transaction instead of two. Note that some sites running Taylor Uucp will
not send 'E' commands. FX UUCICO will _receive_ 'E' requests automatically
without any changes, FX UUCP is needed for _sending_ them. The operation
is completely transparent to the user, we included this paragraph for
informational purposes only.
--- Grades ---
Grades in UUCP links means 'priorities'. By using different grades you can
control which (uucp) jobs are more 'urgent'. Many sites implement this so
they can make better use of the system resources. For instance, mail always
gets assigned Grade 'A' so that it will be sent/received at all hours. But
news may be assigned a Grade of 'B' (or something lower than 'A') so that
newsfeeds only happen during sessions which permit 'B' traffic. Regular file
sends/receives may be Grade 'C' or lower.
All of this allows a site to arrange their traffic so that mail always comes
and goes, but newsfeeds only happen at certain times, and file transfers only
happen in the wee hours of the morning when system usage is lowest.
FX UUCICO has full support for grades, and it's compatible with the standard
used in most UNIX UUCP hosts. Grades consist of a _single_ letter attached to
the (uucp) job file name when it is created. They are classified in reverse
ASCII collateral order: 'A' is the highest grade and 'z' is the lowest. Grades
are case sensitive in Unix systems, but they aren't in DOS because DOS doesn't
distinguish cases in filenames.
Calls made by UUCICO use the static file parameter 'uu.grade' and/or the -g
command line parameter for establishing call grade. Calls received by UUCICO
uses the grade requested by the caller. The 'caller' (who's probably paying
for the connection) ALWAYS governs the grade. UUCICO will not send jobs that
have low grades than specified, and the remote host is supposed to do the same.
When no grade is specified, all jobs are transferred.
FX UUCICO may also order the jobs by grade priority. See 'fx.sortJobs'
If you do not use grades, WAFFLE will create all jobs with decimal digits
which have an even higher priority. You can still request the remote host for
grade limits. A request for a determined 'grade' will enable transmission
of any job with the same *or higher* grade. This is not fully compatible
with Waffle's UUCICO usage, but it is with virtually all other UUCP packages.
Grades are not very useful if the 'caller' doesn't know the remote host conv-
ention. If you implement grades you should tell your users what grades you use
for mail and news.
UUCICO doesn't generate grades, because it doesn't create jobs. Rmail, rnews,
uux and 'uucp' create jobs as specified in the 'mailgrade' and 'newsgrade'
configuration. Note that even though it's not documented, most WAFFLE util-
ities accept a -g parameter to override the grade generation.
--- File size negotiation ---
This is an extension to the UUCP protocol introduced by Unix SVR4 and enhanced
by TAYLOR UUCP. Each side tell the others the maximum file size it can accept,
and the exact size in bytes of files before they are transmitted. File sizes
are limited by the Operating System, by the available space on disk and by con-
figuration.
FX UUCICO can be configured for a maximum file size transmission and to leave a
minimum free space on the spool disk. A cooperative party (a remote UUCICO that
uses file sizes) is needed for full implementation.
There are two parameters in the 'static' file for size usage:
'fx.maxfile'
and
'fx.freespace'
FX UUCICO will not send files larger that 'maxfile'. It will request the other
side to not send files larger than 'maxfile' or that will leave less than
'freespace' on disk.
If the remote host doesn't understand file size negotiation, FX UUCICO will
still check space on the local site, and reject any files which will leave
less than 'freespace' bytes the local system.
Caveat: Currently FX UUCICO will not do additional checking, once the trans-
mission of a particular file has begun. Future releases will probably check
for disk usage 'on the fly.'
Note that the remote side who is sending a file may react to the 'denying for
size reasons' in different ways. If it's not aware of the 'file size' extensions
it may NEVER send that file again (you may have enough space on disk later).
This is not a failure of FX UUCICO, but simply a feature missing from the host
you communicate with.
If 'fx.freespace' is not present in the configuration file, FX UUCICO will not
check for free space on disk at all (which might improve performance on some
systems). If 'fx.maxfile' is not present the default is 32 Megabytes.
--- STATUS BAR ---
The switch (-V) enables a status bar at the top of the screen. This bar
shows file transfer progress at real time. The exact format of the line
changes if Uucico doesn't know the length of the current file. When talking
to another FX or Taylor Uucp, FX always knows the length beforehand.
To support this status bar, the -V switch changes completely the way it
writes to the screen. Normally all screen output goes through DOS, but
when the -V switch is on, FX writes directly on the video memory. This has
a considerable impact on performance and compatibility.
--- Logging ---
Logging is essential for large sites administration. FX has several log
files and allows you to configure the amount of information written to
them. The location of all log files may be specified with 'fx.logdir'
FX UUCICO creates two different main log files: 'uucico' has the normal
logging, and 'debug' has all the testing messages and info. This has the
advantage of _not_ clobbering the normal log with tons of debugging messages.
All logged messages are displayed on the screen as well. Each message
has a level number assigned, only those with a lower or same level than
the current debug level are logged. The debug level may be independently
configured for the screen and for the log files. 'uu.debug' and the -x
switch, 'uu.visual' and -v, configures the disk and screen debuglevel
respectively. Using high settings may substantially AFFECT PERFORMANCE.
Because using high debug levels may create a huge log, there is a parm in
the 'static' file that overrides the location where the 'debug' file is
written. You may want to put your 'debug' file in a ramdisk, because otherwise
the speed may slow down considerably when using higher debug levels (8 an up).
In addition to those, UUCICO also writes to the 'net' and 'uulog' files.
The 'net' log has a single line for each connection reporting total time,
bytes and errors. Files transmitted are logged in 'uulog', the 'fx.uulogLevel'
option is similar to the debug level one.
VI. PROTOCOLS
--- Protocol 'f' ---
The protocol 'f' is on the original Unix UUCPs. It's designed for 'flow con-
trolled, error correction' 7-bits lines. This protocol is very inefficient for
binary (8-bits) files. It has _no_ internal flow control or error correction.
The only recommended use (and the one it was designed for), is X.25 or other
non 8-bit transparent lines.
Any error during downloads will result in truncating the file to zero length,
this is to avoid invalid data, if file restart is afterwards used. (Note:
aborted downloads with ctrl-c/ctrl-break are not truncated).
--- Protocol 'y' ---
This protocol is new. It's extremely fast and efficient. As the 'f' protocol
it was designed for 'error correction' (MNP-V42) modems, but it uses 8-bit
bytes. It's probably the fastest protocol, but you need a 'clean' connection
between both ends.
Most new modems, have hardware error correction. The modems will take care of
flow control and error correction. Note that FX UUCICO has no reliable way to
ensure that an 'error correction' connection has been established. We recom-
mend you 'force' MNP or V42, (see your modem docs). Because its a streaming
protocol (no windows), 'y' it's very efficient on HALF duplex connections
(USR HST and Telebit PEP/TurboPEP).
--- Protocol 'g' ---
FX UUCICO supports the full 'g' implementations with variable sized packets up
to 4096 bytes. The error management is very robust and efficient, which should
result in a much better throughput in noisy lines.
Using a large window size (packet size * max windows), makes a big difference
in 'long delay' lines (as in long distance calls), especially in high speed
modems. We do recommend you to use a large packet size, and keep windows at 7.
Because UUCP protocols are used to transfer everything, not just the files,
large packets are inefficient for very small files. This is why variable size
packets are used, only the minimum packet size needed will be used for each
packet.
Unfortunately many old UUCP implementations don't support anything but 3 win-
dows, 64 bytes fixed packets. Some ones are so badly designed that they even
accept other configurations but crash. The -k parameter governs the max packet
size allowed. If the remote host request packet sizes larger than 64, variable
size packets will be used too. Only powers of 2 (from 32 to 4096) are valid:
32, 64, 128, 256, 512, 1024, 2048 & 4096.
Waffle UUCICO supports 128, 256 and 512, but not variable sizes. We note that
many UNIX systems accept 128 (HDB based) and some of them 256. Taylor UUCP
supports the whole range. FX UUCICO is fully compatible with it, and will work
with any configuration. For better results you should your remote hosts which
use Taylor to implement large packet size and enable short packets.
You _must_ use the -S switch to connect with Waffle Uucico at any packet size
larger than 64 bytes. If you can't connect to a Unix host, reduce the packet
size to 64. Many old implementations will behave in very strangely ways, when
_trying_ to use large sizes.
The default packet timeout was increased to 20 seconds. If you use large pack-
ets and receive calls at low speed, check that the parameter 'uu.delay' is not
too short.
--- Protocol 'G' ---
This is a variation of the 'g' protocol used in SVR4 that is known to implement
the full range of packet sizes. It _doesn't_ use variable sizes, so it's not
recommended for systems which support large packets on the 'g' protocol.
--- Protocol 'v' ---
Also a variation of the 'g' protocol. Contrary to the 'G' one, short variable
packets are always on.
VII. CONFIGURATION
This section describes all the configuration aspects of FX Uucico. For advanced
users the software is highly configurable. Most settings default to reasonable
values. At the minimum you must supply the appropriate 'systems' entries, your
computer name, device and port speed, everything else is optional.
The configuration can be kept as simple as you wish. Don't be overwhelmed by
the large amount of options. They are there for customizing the system. You
may start with the basic example provided. It is much more easier to browse
the examples than reading all the following chapters.
There are two models. A basic configuration model appropriate for leaf
nodes (which poll a single remote host), and an advanced one for servers
and custom installations.
BASIC MODE:
The basic model requires only one configuration file. It is limited to
a single remote system, and currently, with a single phone access number.
ADVANCED MODE:
Configuration is performed by a master file, and the accessory ones:
'systems', 'dialers', 'scripts' and 'permits'.
systems describes the systems you connect with
dialers modem initialization and dialing
scripts commands for login into the remote host
permits permission and other misc settings
The advanced model always requires the 'systems' file. In addition, the
'scripts' and 'dialers' files are required for dial-out, and the 'permits'
one for dial-in usage.
The 'permits' file is only mandatory for dial-in mode, but is optional and
will be used in dial-out mode, even with the basic configuration model.
The location of the configuration files are not fixed. The main config file,
FXUUCP.CFG (also called STATIC), may be pointed by the environment. The
location of the other ones is overridden with the 'fx.confdir' option.
--- Command line parameters ---
Command line parameters cover runtime options that override settings in
the configuration file. A few of them, are available only as runtime
parameters and cannot be set in the config file. With the exception of
-r0 or -s that specify dialin-dialout mode, none of the options are
strictly required.
The switches follow the syntax of the traditional Unix 'getopt' parsing,
with the following rules:
o Options _are_ case sensitive
o You cannot use '/' as the switch character, only '-'
o Multiple options may be folded in a single parameter (-aoV)
o Options that require arguments may have, but do not require
spaces before the argument: -r 3
o List arguments cannot have spaces in the middle of the list:
"-s host1, host2" is incorrect, use "-s host1,host2"
Following is a complete list of valid parameters for the current
version of FX Uucico. Overrides 'xxx' means that the option takes
precedence of the 'xxx' configuration variable.
-a Disable file restart (crash recovery)
-b bps Baud rate. Sets the DTE speed between the computer
and the modem. Overrides 'speed'. Disregarded if
locked with 'uu.locked'
-d device Device name or port number. May optionally include
an I/O address and/or IRQ. See internal driver for
the full syntax. Overrides 'device'
-g grade Single letter that sets the minimum grade for trans-
ferring jobs. Used only in dialout mode. Overrides
'uu.grade'
-i Do not check carrier detect. Needed for some direct
connections with null-modem cables
-k pkt_size Packet size for the 'g' and 'G' protocols. Overrides
'fx.gPktSize'. The packet size have a dramatic influence
on the throughput, but values unsupported by your remote
host might break the connection. See the 'g' protocol
-n hostname Changes the machine name as communicated to the remote
host. Overrides 'uucpname'
-o Disable enforcement of time restrictions specified in
'systems' and 'permits'
-p permit Use the name permit entry. See 'permits' for the full
searching algorithm used by FX
-r retries Amount of retries before giving up calling each one of
the current entries in 'systems'. Overrides 'uu.retries'.
-r0 have special meaning and engages dial-in mode.
-t seconds Timeout on scripts execution. Overrides 'uu.time'
-u login Login or account name verified by the login sequence in
dialin mode. This allows FX to verify that the remote
host name corresponds to the login name as specified in
'permits'
-v debug Debug level for screen output. Overrides 'uu.visual'
-w windows Window size for the 'g' and 'G' protocols. Overrides
'uu.windows'.
-x debug Debug level for file output. Overrides 'uu.debug'
-z trigger Sets trigger levels for 16550A uarts. -z0 disables
fifo usage and autodetection.
-S Disable variable packets ('g' protocol only).
-V Enable status bar and direct video access.
--- STATIC configuration file ---
The main configuration file was traditionally called 'STATIC', but its
_default_ name has been changed to FXUUCP.CFG. Both the name and the location
may be altered from the environment. This method allows you to select among
different configurations at run time.
o FX first search the environment for the variable 'FXUUCP'.
o If FXUUCP is not in the environment, the keyword 'WAFFLE' is searched.
o If none is found, FX tries to read the file "FXUUCP.CFG" in the same
directory where the executable is located. This means that no environment
variables are strictly needed.
The master configuration file is required in all cases. If all the three
steps mentioned above fail, the program will refuse to run. When using the
environment, the content must specify a full path _and_ filename.
Examples:
SET FXUUCP=c:\fxuucp\fxuucp.cfg
SET WAFFLE=c:\waffle\system\static
There are lot of options that may be set, but again, most have reasonable
defaults. We show only the most useful configuration options. Advanced user
will find a full reference in the samples provided with this package.
o The syntax is: "option : setting".
o Case is not sensitive.
o Free white space may be added or omitted at both sides of the ':'
separator.
o The option name must start on the first column.
o Unknown keywords are skipped without warning.
o A '#' or ';' in the first column is conventionally used as a comment.
o Empty lines may be inserted for better readability.
o When duplicated keywords are found, the last one takes precedence.
o Multiple files may be included. The syntax is the same as with any other
option: "include: c:\mydir\config3". There is no limit in the number of
files included, they may be nested four levels deep.
Some option are booleans, they may be enabled or disabled:
yes, true, 1 = enabled
no, false, 0 = disabled
Mandatory entries that _must_ be present in the configuration file:
device Default port number of your serial/modem device.
speed Default speed setting of the serial port
spool Directory path for queuing outgoing and receiving
incoming jobs. One subdirectory will be created
for each connecting host.
uucpname Your machine name as known by your neighbors. It
must match the 'system' entry in your remote host.
Important keywords that its only presence affect many other options:
waffle The presence of this option, alerts FX that you are
running under Waffle and use its directory tree. It
specifies the root directory for the whole tree. Non
explicitly configured subdirs, will be created under
this one.
When this keyword is absent, _all_ directories default to
the one where the executable is located. Or in other words,
a _single_ directory is used by default. The exeception is
the spool, that must be explicitly configured (but can be
configured to be the same one).
fx.rSystem This option selects between the basic and the advanced
configuration model. The entry specifies all the data
needed to access your remote host. The syntax is almost
the same as the 'systems' file and is describe in that
chapter.
If missing, FX will enter the advanced model and will
search for the accessory configuration files.
Other useful options:
uu.debug Debug level, controls the amount of info written
to the 'uucico' and 'debug' logs.
uu.driver Selects between 'NATIVE' or 'FOSSIL' driver.
Overrides 'driver'.
uu.locked Locked port speed. Uucico will use always this setting
and disregard any other speed options.
uu.time Timeout in seconds for scripts executions.
uu.visual Debug level, controls the amount of message displayed
on the screen.
fx.gPktSize Default packet size for the 'g' protocols family
fx.share Enables the networking features of FX Uucico.
Again, there are more options available, a full reference is provided in
the samples. Some parameters, typically the packet size, may be configured
in a per systems basis using the 'permits' facility.
--- 'systems' file ---
The 'systems' file describe the remote hosts you are connecting, usually
called neighbors. At least one line must be present for each one. Multi-
ple entries for the same host are allowed specifying different dialing
numbers or changing other parameters. Multiple entries will result in
Uucico using them in sequence when retrying a failed connection.
#The format of the 'systems' entry is:
#
#host time protocol dialer script phone-number login password
#
laser Any g Hayes.2400 toUnix 123-45678 uulaser secret
host Equivalent to your uucpname. Your neighbors must list
your name in their 'systems' or equivalent file.
time Allowed times for placing outgoing calls. See below
for a description of this field.
protocol Single letter. Selects the protocol on outgoing calls.
dialer Dialer script. This is not a literal script, but the
name of a matching entry in the 'dialers' file.
script Login script. Same as above.
phone Telephone number of your remote host. Will replace
\T escapes in scripts.
login Your login name that will grant you access on the
remote machine. Replaces \L in scripts.
password Password for to the login. Replaces \P in scripts.
Only the first field (host) is used in incoming calls. The last three
entries are optional and normally not needed in direct serial links.
The fx.rSystem option, when present in the master config file, replaces
'systems' completely. The syntax is the same, but instead of having
fields 'pointing' to entries in the 'dialers' and 'scripts' files, the
actual script is embedded:
#fx.rSystem: host time protocol script
fx.rSystem: laser Any g "" ATD111 CONNECT \m\c in: user word: secret
Note that the escapes \T, \L and \P are not usable because they are not
defined. Also note that line continuation is currently not supported in
the master file, but the line may be quite long.
--- 'dialers' file ---
#
#Dialer-name device speed dialer-script
#
Hayes.2400 Any default "" AT OK ATD\T CONNECT \m\c
dialer Name of the entry. Uucico will search for a matching
entry as specified in the 'systems' dialer field.
device Overrides default device port in the config file.
speed Overrides default speed in the configuration file.
script The rest of the line is the actual dialer script.
Scrip syntax is described below
--- 'scripts' file ---
#
#script-name login-script
#
toUnix in:--in: \L ord: \P
script-name Name of the entry.
login-script The rest of the line is the actual login script.
--- scripts syntax ---
Scripts are a very powerful tool. Note that because of the script
design, uucico is less smart that normal communication programs. It
doesn't have a specific command for dialing, nor a fixed sequence
of initialization commands. It's all up to you to make it as complex
or simple as you wish or need. The dialer script is performed first,
and then the login script.
The scripts are formed by pairs of send/expect sequences. Send tokens
are transmitted to the serial port and then it waits for the expect
one. If the expect token doesn't arrive in time, the alternate token
if present is sent, otherwise the script fails. The syntax define
special escape sequences that are replaced at run time. Tokens that
are not alternate are separated by free white space. Empty tokens
may be set with a pair of double quotes.
"" ATZ OK ATD123-45678 CONNECT
Long scripts may be continued in the next line placing free whitespace
(one or more spaces and/or tabs) in the continuation line. Using this
method there is no formal limit to the script length.
gin: \L word: \P service: uucp gateway: direct age: 20
hobbies: soccer others: ENOUGH!
A pair of dashes signal an alternate sequence, the token between the
dashes is sent, and the script expects a new token after the last dash.
in:-BREAK-in: \L
In this example, if the in: token is not found, a BREAK is sent and then
another in: is expected.
Escapes allowed in send tokens only:
\ooo Send any byte represented in octal notation.
\c Suppress ending carriage return. By default all send
tokens have a carriage return appended.
\d Delay of two seconds.
\E Turn echo check on. Valid for this token _only_. It is
very useful for some modems that are slow receiving
commands, and tend to loose some characters.
\e Turn echo check off.
\K Send break signal. This is basically an antique for
old Unix dialers.
\L Replaced by the login name field in the 'systems' entry.
\m Turn carrier checking on. By default carrier detect
is not sampled during scripts execution.
\M Turn off carrier checking during the rest of the
script.
\p Delay of approximately half a second.
\P Replaced by the current password.
\S Replaced by the remote host uucp name.
\T Replaced by the phone number field in the 'systems' entry.
BREAK Send a break signal
P_NONE Sets the comm line to 8 bits no parity.
P_EVEN Set the line to 7 bits even parity. Normally valid for
the login sequence only. As most protocols will revert
back to 8 bits no parity.
P_ODD Set the line to 7 bits odd parity. Same note as above.
Escapes allowed in both send and expect tokens:
\b Backspace
\m Carriage return
\n Line feed
\r Carriage return
\s Space
\t Tab
\\ Backslash
A ~ddd sequence at the end of any expect string overrides the default
timeout (uu.time and -t):
uu.time : 10
"" AT OK ATDP\P CONNECT~60
The OK must arrives ten seconds after the AT command, but the CONNECT
message may take up to 60 seconds.
--- 'permits' file ---
The 'permits' file controls security issues. FX also uses the 'permits'
file to change some common parameters between different systems. It
doesn't have a fixed field format as the other configuration files. Each
entry is started with a name that identifies this permit. Other parameters
may be added in any order.
The selection of the current permit uses the following algorithm:
If -p <permit> was received from the command line
looks for the named permit, otherwise fails.
else (no -p parameter)
search for a permit name matching the remote system name.
if not found
search for the permit named 'default'
Note that the -p parameter, forces a specific permit and prevents
using the 'default' one. Without a matching permit the connection
will not be performed.
The 'fx.joinDefPermit' configuration modifies the exact behavior
of the 'default' permit and the default values assumed for options
not present in the current permit.
When 'fx.joinDefPermit' is off (default), the permit named 'default'
doesn't affect parameters on other permits. Parameters not specified
in the current permit, are considered not present and assume internal
defaults.
When 'fx.joinDefPermit' is on, the permit named 'default' is always
parsed. Parameters not specified in the current permit, inherit
settings from the 'default' permit. This is very useful to set
global parameters without restricting to a single permit.
Each parameter starts with a slash, the '=' character separates the
keyword from the value. Spaces or tabs must be present between para-
meters. Line continuation is fully supported, and is customary to
put each parameter in a single line. Many are relevant for dial-in
calls only.
/account login name allowed for this permit. This option
in conjunction with he -u parameter is the key
for a secure system. Dial-in only
/speed Minimum connect speed. Dial-in only.
/time Allowed dial-in calls. Same syntax as the time
field on 'systems'. 'never' disables dial-in
for this permit.
/system Use 'any' to allow for anonymous uucp.
/download Download directory for sending non-job files.
It is enforced on remote requests only. Specify
a single name only, multiple directories are not
supported. It may be an absolute path, or a relative
subdir from the 'spool' directory. See 'fx.trusted'
All download requests are denied if not present.
/upload Upload directory for receiving non-job files. Same
notes as 'download'.
/fx.trusted Boolean option. Normally FX expands non-job requests
under the 'download' or 'upload' settings. The remote
user cannot specify an absolute path. It must use the
~/ uucp convention or a simple file name without path.
Enabling this option grants full access to the whole
file systems. _Every_ request is accepted as long
as it is not denied by the operating system. Note,
this produces a SERIOUS SECURITY HOLE. Use only for
yourself, or really 'trusted' users.
/fx.maxtime Maximum time in seconds allowed for the connection.
The timer starts counting from the end of the uucp
handshake. FX checks for time exceeded between job
transactions, it will not abort the current file.
The limit is per session only, no daily total is
maintained.
/fx.maxbytes Maximum total bytes allowed for transmission. The
value represent the sum of bytes sent plus received.
Same notes as 'fx.maxtime'
/fx.gpktsize Overrides the 'g' and 'G' protocols packet size. If
you have increased the global packet size, put a 64
value for systems that do not support large packets.
Or, leave the global packet size at 64 bytes, and
set larger values for specific systems.
/uu.windows Overrides the 'g' and 'G' protocols windows size.
/fx.shortpkts Overrides the -S flag for enabling/disabling variable
packets on the 'g' protocol. Boolean option.
Example:
laser /account=uulaser
/commands=rnews,rmail (not used by Uucico)
/download=d:\home\mydir
/upload="uploads"
/time=any
/fx.gpktsize=1024
/fx.maxtime=3600
--- Time field format ---
Time fields are present in the 'systems' and 'permits' files. The
'systems' enforces dialout calls and the 'permits' dialin ones.
A time description starts with a special abbreviated keyword and may
be optionally followed by a numeric range. Multiple entries separated
by commas ',' are supported. The time will be validated if it matches
anyone of the entries.
Keywords:
Any Matches any day.
Never No match. Disables diaout calls in 'systems'
and dialins in 'permits'
Evening Matches any time on Saturday and Sunday
dd Matches the specific day(s), one or more of:
Su, Mo, Tu, We, Th, Fr, Sa, Wk
'Wk' matches any day expect Sunday and Saturday
A 'military' time range may be added after the keyword to further restrict
the entry. Military times are four decimal digits in the format 'hhmm'
SaSu2000-2300 Matches Saturday and Sunday from 20:00 to 23:00
Any1000-1600,Mo Matches any day from 10 Am to 4 Pm, and Monday
at any time.
VII. ASSISTANCE
The author can be contacted at:
Jorge Cwik jorge@satlink.net
We welcome comments, suggestions and bug reports. I am not directly on the
net. I may take some time from the moment you send me a mail, until I receive
it (and vice versa). I do answer to every single query, but you may get a
faster response reaching our mailing-list.
When reporting a bug, please include pertinent clips from your logfiles, or
any other documentation which may assist us in resolving the problem.
FX maintains a set of servers to support its products. They include a
mailing list, mail and ftp servers, etc. See SUPPORT.DOC or write to
fx-info@uufx.net to receive the latest update.
Thanks to all the testers for their help, and especially to Bob Kirkpatrick
and his servers at Dog Ear'd Systems of Spokane, WA.
IX. LEGAL
FX software is not in the public domain.
FX UUCICO is (c) copyright 1993, 1994 by Jorge Cwik.
This release (1.0) may be freely distributed by normal shareware channels,
as long as they do not charge for it beyond a nominal fee for diskette or
transmission, and the original zip file is not modified in any way. Commer-
cial packages willing to distribute our software, contact us for licenses
and custom releases.
FX UUCICO is shareware. You may freely test the software for a period of
up to 30 days without paying any registration fee. After that period has
elapsed, you are required to register the software. Please see the file
REGISTER.FRM for information on product registration.
The author of FX UUCICO offers this release AS IS, and assumes no liability
for any problems incurred through its use. The author reserves all Rights
to the software.